#ifndef HISYSEVENT_DATA_H_
#define HISYSEVENT_DATA_H_


#include <hisysevent_c.h>

#define MAX_LINE_LENGTH 1024
#define MAX_SUB_COUNT 20
#define MAX_FIELD_LENGTH 64
#define MAX_FIELD_COUNT 20
#define CONFIG_FILE_PATH "/system/usr/collectd/hisysevent.config"

#ifndef MAX_LENGTH_OF_EVENT_DOMAIN
#define MAX_LENGTH_OF_EVENT_DOMAIN 17
#endif

#ifndef MAX_LENGTH_OF_EVENT_NAME
#define MAX_LENGTH_OF_EVENT_NAME 33
#endif

/**
 * @brief 存储解析后的hisysevent数据条目结构体
 *
 * 该结构体保存单个hisysevent数据条目的信息，
 * 包括域名称、事件名称、字段及其对应的值。
 */
typedef struct {
    char domain[MAX_LENGTH_OF_EVENT_DOMAIN];      /**< 事件域名称 */
    char name[MAX_LENGTH_OF_EVENT_NAME];          /**< 事件名称 */
    char field[MAX_FIELD_COUNT][MAX_FIELD_LENGTH]; /**< 字段名称数组 */
    uint64_t fieldValues[MAX_FIELD_COUNT];        /**< 与字段名称对应的字段值数组 */
    int fieldCount;                               /**< 条目中的字段数量 */
    HiSysEventEventType eventType;                /**< 事件类型 */
} FileEntry;


#endif /* end of include guard: HISYSEVENT_DATA_H_ */
